Nuhlis
Nuhlis CMS
Admin Console
{{ loginErr }}
Users are created in Supabase → Authentication.
← Back to website
{{ notice }}

Team

Admins, managers, editors, bloggers, SEO and analytics roles. The owner account is private — only the owner can see or change it.

{{ m.initial }}
{{ m.name }}
{{ m.email }} · {{ m.title }}
WHAT {{ m.firstName }} CAN SEE AND DO
{{ pp.label }}
"See" shows the page in their menu · "Edit" lets them change and publish.

Roles here describe responsibilities. Login accounts are created separately in Supabase → Authentication → Users.

Search Engine Optimization

Checks every public page against what Google and Bing look for, keeps the sitemap fresh, and walks you through submitting the site.

SITE HEALTH
{{ h.mark }}
{{ h.label }}
{{ h.sub }}
SITEMAP
Search engines read sitemap.xml to discover the pages. Regenerate it whenever pages are added or content changes significantly.
{{ seoSitemapNote }}
Replace the sitemap.xml file in the site folder with the downloaded one, then redeploy.
GET INDEXED — ONE-TIME SETUP
  1. Open Google Search Console, add the property nuhlis.com and verify it.
  2. In Search Console → Sitemaps, submit https://nuhlis.com/sitemap.xml. Google re-crawls it on its own schedule.
  3. Open Bing Webmaster Tools and use "Import from Google Search Console" — one click covers Bing, DuckDuckGo and Yahoo.
  4. After each content push: run the audit, regenerate the sitemap, redeploy. Rankings build over weeks, not days.
PAGE-BY-PAGE AUDIT
{{ a.page }} {{ a.score }}
{{ c.mark }}
{{ c.label }}
{{ c.sub }}

Meta editor — per page, both languages

{{ s.page }}
{{ s.lang }}

Analytics

Site counters shown on the homepage, plus activity from the site.

{{ st.label }}
Contact messages
{{ msgCount }}
Subscribers
{{ subCount }}
Blog posts
{{ postCount }}
Visitor Analytics {{ pvTotal }} total events recorded
Where readers open the platform and how often — recorded live as visitors browse the public pages.
PERIOD
VIEWS · {{ pvPeriodLabel }}
{{ pvViews }}
COUNTRIES
{{ pvCountries }}
CITIES
{{ pvCities }}
TOP COUNTRY
{{ pvTop }}
VS PERIOD BEFORE
{{ pvDelta }}
{{ pvDeltaSub }}
WHERE READERS ARE VIEWING FROM
World map
Each dot marks a country; size reflects the number of views in the selected period.
VIEWS BY COUNTRY · {{ pvPeriodLabel }}
{{ b.name }} {{ b.meta }}
{{ b.cities }}
No views recorded in this period yet — data appears as visitors browse the site (run db/07-supabase-analytics.sql first).

Security

Your account and access rules.

Change password
Access rules in force
  • Public visitors: read-only on published content
  • Contact form: insert-only, no reading back
  • All editing requires a signed-in staff account
  • Row Level Security enforced in the database
  • Signed in as {{ userEmail }}
Manage users, 2FA and email settings in Supabase → Authentication.

Blog

Bilingual posts — drafts stay hidden until published.

{{ blogCount }}
{{ p.title }}
{{ p.slug }} · {{ p.date }}
{{ p.status }}
No posts yet — create the first one, or migrate the Wix posts here.

{{ postFormTitle }}

ENGLISH
DEUTSCH
Write like in Word — what you see here is exactly how the post looks.
{{ edStatus }}
Selected picture:
Tip: click a picture to move, replace or remove it — or simply drag it to another spot in the text. Pictures you add are stored automatically; the same picture can stay in both languages.
Add a picture or short video
Pick from your computer — it uploads and drops straight into the text where your cursor is.
…or reuse one you already have

Comments

Awaiting moderation
New viewer comments are hidden from the site until approved here.
COMMENTON
{{ c.name }} · {{ c.country }} · {{ c.email }} · {{ c.date }}
{{ c.text }}
{{ c.slug }}
Nothing here yet.
Published comments
Visible on the site. Remove anything that no longer belongs.
COMMENTON
{{ c.name }} · {{ c.country }} · {{ c.email }} · {{ c.date }}
{{ c.text }}
{{ c.slug }}
Nothing published yet.
{{ c.statusLabel }} on: {{ c.slug }}
{{ c.who }}
{{ c.text }}
{{ c.date }}

Courses

Year-round online STEM classes shown on the STEM page. Edit, publish or unpublish — the site updates on next load. (Run db/08-courses.sql first.)

{{ c.title }}
{{ c.slug }} · {{ c.price }}
{{ c.status }}
No courses found — run db/08-courses.sql in Supabase to create the table with the two starter courses.
BASICS
Accent colour
ENGLISH
DEUTSCH
LIVE PREVIEW
{{ prevBadge }}
{{ prevTitle }}
{{ prevPlace }}
{{ prevPrice }} {{ prevPer }}
{{ prevPayLabel }} {{ prevTicket }}
{{ prevDetails }}
{{ prevSchedule }}
This is how the course appears on the STEM page. Everything updates as you type.

Media library

Every image, GIF and video you have uploaded or used — across blog posts, courses and content. Copy a URL and paste it anywhere (course image, blog body, content block).

Upload new Files land in the same storage as blog uploads and appear below.
{{ m.name }}
{{ m.name }} {{ m.source }}
No media yet — upload above, or add images to blog posts and courses; they all show up here.

Course registrations

Everyone who booked a course spot. Free reservations must be approved here; paid bookings get Mark paid once the payment is through. Letters & reminders (incl. the Zoom link) go only to approved or paid registrants. (Run db/09-registrations.sql first.)

{{ r.participant }} · {{ r.email }} · {{ r.phone }} · {{ r.country }}
Guardian: {{ r.guardian }}
{{ r.course }} {{ r.date }}
No registrations yet.

Letters & reminders

Write the acknowledgement, reminder or Zoom-link letter per course, save it, then send it to every registrant of that course in one click (opens your email app with all addresses in BCC).

Content

Copy blocks used across the site, per language. Add a key, and I can wire it to any element.

{{ c.lang }}

Audience

Messages from the contact form and newsletter subscribers.

Messages ({{ msgCount }})

{{ m.name }} · {{ m.email }}
{{ m.message }}
{{ m.date }}
No messages yet.
Audience contacts {{ subShown }} contacts · {{ subCount }} total
Everyone who has commented or sent a suggestion — approved or not — with the email and country they gave. Use Export for your mailing tool, or "Send email to all" to open your own email app with every address in BCC.
NAMEEMAILCOUNTRYACTIVITYLAST SEEN
{{ s.name }} {{ s.email }} {{ s.country }} {{ s.activity }} {{ s.since }}
No one on the list yet — everyone who comments or writes joins automatically.